package com.powergisol.gis.service;

import com.powergisol.gis.config.ServiceFeignConfig;
import com.powergisol.gis.service.impl.WMSServiceImpl;
import feign.Response;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @author Frog
 */
@FeignClient(value = "gis-wms", fallback = WMSServiceImpl.class,configuration = ServiceFeignConfig.class)
public interface WMSService {
    @RequestMapping(value = "gis/wms", method = RequestMethod.GET)
    String getWmsLayer(@RequestParam(value = "transparent") String transparent, @RequestParam(value = "service") String service,
                         @RequestParam(value = "version") String version, @RequestParam(value = "width") String width,
                         @RequestParam(value = "height") String height, @RequestParam(value = "request") String request,
                         @RequestParam(value = "styles") String styles, @RequestParam(value = "format") String format,
                         @RequestParam(value = "layers") String layers, @RequestParam(value = "bbox") String bbox,
                         @RequestParam(value = "uuid") String uuid, @RequestParam(value = "srs") String srs,
                        @RequestParam(value = "x") String x, @RequestParam(value = "y") String y);

    @RequestMapping(value = "gis/wms", method = RequestMethod.GET)
    Response getWmsLayerResponse(@RequestParam(value = "transparent") String transparent, @RequestParam(value = "service") String service,
                       @RequestParam(value = "version") String version, @RequestParam(value = "width") String width,
                       @RequestParam(value = "height") String height, @RequestParam(value = "request") String request,
                       @RequestParam(value = "styles") String styles, @RequestParam(value = "format") String format,
                       @RequestParam(value = "layers") String layers, @RequestParam(value = "bbox") String bbox,
                       @RequestParam(value = "uuid") String uuid, @RequestParam(value = "srs") String srs);

//    @RequestMapping(value = "gis/wms", method = RequestMethod.GET)
//    String getWfs1LayerResponse(@RequestParam(value = "service") String service,
//                                 @RequestParam(value = "request") String request,
//                                 @RequestParam(value = "maxFeatures")int maxFeatures,
//                                 @RequestParam(value = "typeNames")String typeNames,
//                                 @RequestParam(value = "version")String version,
//                                 @RequestParam(value = "startIndex")int startIndex);
//
//    @RequestMapping(value = "gis/wms", method = RequestMethod.GET)
//    String getWfs1LayerResponse(@RequestParam(value = "service") String service,
//                                @RequestParam(value = "version")String version,
//                                @RequestParam(value = "request") String request,
//                                @RequestParam(value = "count")String count,
//                                @RequestParam(value = "startIndex")String startIndex,
//                                @RequestParam(value = "typeName")String typeName,
//                                @RequestParam(value = "typeNames")String typeNames,
//                                @RequestParam(value = "maxFeatures")String maxFeatures,
//                                @RequestParam(value = "maxFeatures")String outputFormat,
//                                @RequestParam(value = "filter")String filter);


}
